DeleteFile - jak vymazu celou slozku

Otázka od: Marek

10. 11. 2004 8:55

ahoj,

pri behu programu vytvarim soubory ve slozce
extractfilepath(application.exename) +'\temp\Page' + IntToHex(PageNum, 2)+

, ktere bych chtel smazat najednou, je na to nejaka fce.

Marek



Odpovedá: konf_delphi@centrum.cz

10. 11. 2004 20:20

 Muzes zkusit tohle - nasel jsem to nekde na netu, bohuzel uz nevim kde,
takze autor snad promine  

uses FileCtrl;

procedure SmazDir(Cesta: String);
var
  sr: TsearchRec;
  r: Integer;
begin
  if Cesta[Length(Cesta)] <> '\' then Cesta := Cesta + '\';
  r := Findfirst(cesta+'*.*',faAnyFile,sr);
  while r = 0 do begin
    if copy(sr.name,1,1) <> '.' then begin
      if sr.attr and faDirectory <> 0 then begin
        SmazDir(Cesta+sr.name);
        Application.ProcessMessages;
      end else begin
        DeleteFile(cesta+sr.name)
      end;
    END;
    Application.ProcessMessages;
    r := FindNext(sr);
  end;
  findclose(sr);
  RemoveDirectory(Pchar(copy(cesta,1,Length(cesta)-1)));
end;

A pak volas: SmazDir( cesta k adresari );

> ahoj,
>
> pri behu programu vytvarim soubory ve slozce
> extractfilepath(application.exename) +'\temp\Page' + IntToHex(PageNum, 2)+
>
>, ktere bych chtel smazat najednou, je na to nejaka fce.
>
> Marek